home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 July / Macworld (1999-07).dmg / Shareware World / Info / For Developers / H2C 1.1 / H2C SDK / Header / H2CCallback.h next >
Text File  |  1999-05-06  |  4KB  |  110 lines

  1. // =================================================================================
  2. //    H2CCallback.h                                           © 1998-99 Antoine Beyeler
  3. // =================================================================================
  4.  
  5. #pragma once
  6.  
  7. #include <MixedMode.h>
  8.  
  9. #pragma options align=mac68k
  10.  
  11. typedef struct {
  12.     UniversalProcPtr h2cCallbackWriteText;
  13.     UniversalProcPtr h2cCallbackWritePString;
  14.     UniversalProcPtr h2cCallbackWriteCString;
  15.     UniversalProcPtr h2cCallbackWriteChar;
  16.     UniversalProcPtr h2cCallbackGetMarker;
  17.     UniversalProcPtr h2cCallbackSetMarker;
  18.     UniversalProcPtr h2cCallbackGetEOF;
  19.     UniversalProcPtr h2cCallbackSetEOF;
  20.     
  21. } H2CCallbackT, *H2CCallbackPtrT;
  22.  
  23. enum {
  24.     uppWriteTextProcInfo = kPascalStackBased
  25.         | RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
  26.         | STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (void*)))
  27.         | STACK_ROUTINE_PARAMETER (2, SIZE_CODE (sizeof (long))),
  28.     uppWritePStringProcInfo = kPascalStackBased
  29.         | RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
  30.         | STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (StringPtr))),
  31.     uppWriteCStringProcInfo = kPascalStackBased
  32.         | RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
  33.         | STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (char*))),
  34.     uppWriteCharProcInfo = kPascalStackBased
  35.         | RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
  36.         | STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (unsigned char))),
  37.     uppGetMarkerProcInfo = kPascalStackBased
  38.         | RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
  39.         | STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (long*))),
  40.     uppSetMarkerProcInfo = kPascalStackBased
  41.         | RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
  42.         | STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (long))),
  43.     uppGetEOFProcInfo = kPascalStackBased
  44.         | RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
  45.         | STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (long*))),
  46.     uppSetEOFProcInfo = kPascalStackBased
  47.         | RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
  48.         | STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (long)))
  49. };
  50.  
  51. inline OSErr
  52. CallWriteTextProc (H2CCallbackPtrT callback, const void* text, const long len)
  53. {
  54.     return CALL_TWO_PARAMETER_UPP (callback->h2cCallbackWriteText, uppWriteTextProcInfo, text, len);
  55. }
  56.  
  57. inline OSErr
  58. CallWritePStringProc (H2CCallbackPtrT callback, const Str255 str)
  59. {
  60.     return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackWritePString, uppWritePStringProcInfo, str);
  61. }
  62.  
  63. inline OSErr
  64. CallWriteCStringProc (H2CCallbackPtrT callback, const char* str)
  65. {
  66.     return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackWriteCString, uppWriteCStringProcInfo, str);
  67. }
  68.  
  69. inline OSErr
  70. CallWriteCharProc (H2CCallbackPtrT callback, const char c)
  71. {
  72.     return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackWriteChar, uppWriteCharProcInfo, c);
  73. }
  74.  
  75. inline OSErr
  76. CallGetMarkerProc (H2CCallbackPtrT callback, const long* pos)
  77. {
  78.     return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackGetMarker, uppGetMarkerProcInfo, pos);
  79. }
  80.  
  81. inline OSErr
  82. CallSetMarkerProc (H2CCallbackPtrT callback, const long pos)
  83. {
  84.     return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackSetMarker, uppSetMarkerProcInfo, pos);
  85. }
  86.  
  87. inline OSErr
  88. CallGetEOFProc (H2CCallbackPtrT callback, const long* sz)
  89. {
  90.     return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackGetEOF, uppGetEOFProcInfo, sz);
  91. }
  92.  
  93. inline OSErr
  94. CallSetEOFProc (H2CCallbackPtrT callback, const long sz)
  95. {
  96.     return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackSetEOF, uppSetEOFProcInfo, sz);
  97. }
  98.  
  99.  
  100.     
  101. #define WriteText_(text, len)    CallWriteTextProc (callback, text, len)
  102. #define WritePString_(str)        CallWritePStringProc (callback, str)
  103. #define WriteCString_(str)        CallWriteCStringProc (callback, str)
  104. #define WriteChar_(c)            CallWriteCharProc (callback, c)
  105. #define GetMarker_(pos)            CallGetMarkerProc (callback, pos)
  106. #define SetMarker_(pos)            CallSetMarkerProc (callback, pos)
  107. #define GetEOF_(sz)                CallGetEOFProc (callback, sz)
  108. #define SetEOF_(sz)                CallSetEOFProc (callback, sz)
  109.  
  110. #pragma options align=reset